import type { Metadata } from 'next'; import Link from 'next/link'; import { notFound } from 'next/navigation'; import { feeScheduleFor } from '@rareindex/valuation'; import { PageHeader } from '@/components/ui/page-header'; import { Card, CardHeader, EmptyState, StatStrip } from '@/components/ui/primitives'; import { LotsIntelCards, LotsIntelTable } from '@/components/market/lots-table'; import { SalesCards, SalesTable } from '@/components/market/sales-table'; import { FeeScheduleTable, FeeConfidenceBadge } from '@/components/market/fee-schedule'; import { getAuctionHouseStats, listAuctionHouses, listHouseResults, listLots } from '@/lib/queries/market-lists'; import { resolveHouse } from '@/lib/auction-house'; import { fmtMoney, fmtNum, fmtPct, fmtRelative } from '@/lib/format'; export const revalidate = 300; export async function generateMetadata({ params }: { params: Promise<{ slug: string }> }): Promise { const { slug } = await params; const h = resolveHouse(slug, await listAuctionHouses()); return h ? { title: `${h.house} — auctions, results & buyer's premium`, description: `${h.house} on RareIndex: open lots with all-in cost vs RIV, recorded results and the buyer's premium schedule used for all-in estimates.` } : { title: 'Auction house' }; } export default async function AuctionHousePage({ params }: { params: Promise<{ slug: string }> }) { const { slug } = await params; const houses = await listAuctionHouses(); const h = resolveHouse(slug, houses); if (!h) notFound(); const [stats, lots, results] = await Promise.all([getAuctionHouseStats(h.house), listLots({ house: h.house, open: true, limit: 60, sort: 'ending' }), listHouseResults(h.house, 50)]); const schedule = feeScheduleFor(h.house); return (
Open lots → Calendar → } />
All →} />
{!lots.length ? : null}
{!results.length ? : null}
{schedule ? ( ) : (

No schedule on file for this house. When a result is recorded as hammer-only, RareIndex adds a default 22 % premium and labels the all-in figure “premium added (default)”; when the connector does not state whether the premium is included, the price is shown as recorded with “fees unknown”.

Schedules live in data/fees/auction-houses.json — see the methodology.

)}
); }